Le RubyGems écosystème est la réponse de Ruby au chaos de la « dépendance infernale » du gestionnaire traditionnel de bibliothèques. Au lieu de remplacer les fichiers dans un répertoire global partagé, RubyGems utilise Isolation architecturale.
1. La magie à l’exécution
Contrairement aux bibliothèques standards, chaque version d'une gem vit dans son propre répertoire auto-suffisant. Lorsque vous appelez gem 'nom', 'version', RubyGems exécute une « magie à l’exécution » : il ajoute dynamiquement le répertoire lib du dossier $LOAD_PATH à l’array global.
2. Résolution et dépôts
Alors qu’une installation locale peut échouer si une dépendance est manquante, installation distante (en utilisant --remote) télécharge automatiquement l’ensemble de l’arborescence des dépendances depuis un dépôt central, garantissant que Contraintes de version soient respectées avant le début de l’exécution.